Electronics Production

This week assignment is to learn about electronics production. First we have to learn about PCB fabrication to fabricate FabTinyISP.

As part of the electronics production lecture (held on Wednesday 17th February, 2017), Neil had discussed several Electronics Production methods such as Etching and Machining among others (Printing, Sewing, Laser Cutting, etc.) which Week 4's assignment asked us make an in-circuit programmer by milling the PCB. There are six options of PCB circuit layout:

Brian

Zaerc

Ali

Valentin

Andy

David

David

Among the four I selected to go with Brian version as the components needed to fabricate the FabTinyISP are easily available in my Lab.

Step 1: Milling the Board.

Step 2: Mountng Components

Step 3: Programming the ATtiny45




Milling the Board.

a) My first task was to learn how to use Roland EGX-600 milling machine.

b)Download the sketch for FabTinyISP from the links given below:

Traces/tracks

Interior/Outline

c) I installed Aspire platfrom to create rml files to send it to the milling machine.

d) As the images were in png format which is not supported in Aspire. So first i obtained the vectorised image of traces and cut using Inkscape and saved it in eps format.

e) Next step is to create toolpath in Aspire. Below you can find the snapshot while creating toolpath fo inner traces. The tool tip of diameter 0.25mm and cutting depth of 0.1 mm is used for interior traces.

f) Below you can find snapshot while apllying double sided tape to make the surface stick.

g)Next a stuck the board on the platform ensuring that it is properly balance.

h)Some of the snapshot while setting the origin(x,y,z) of tool.

Tool used for inner milling (V-shape diameter 0.25mm,30 degrees).

i)Below you can find the snapshot of inner traces milled on board.(tool dia-0.25mm and cutting depth-0.1mm)

j)Below you can find the snapshot of outer traces milled on board.(tool dia-2mm and cutting depth-1.3mm)

h) But the problem with this was it was not actually fiiting usb port. So there is a need to change the size. The offset is now set to 1.3mm so that we can get the correct dimensions of the exterior cut.

(j) Since the cut depth taken by me was less compared to board thickness, so it didn't cut all the way through. But it was enough so that we can remove it easily. This problem can be resolved by increasing the cut depth.



Mounting Components

a)Components Required

2x 1kohm resistors

2x 499ohm resistors

2x 49ohm resistors

2x 3.3v zener diodes

1x red LED

1x green LED

1x 100nF capacitor

1x 2x3 pin header


b) The next step is to learn about surface mount soldering (SMD). As guided my local instructor it is better to start soldering from the center of the board. For the safer side i started soldering safer parts (components having 4-5pins). Below you can find some of the snapshot while soldering.



Programming the ATtiny45

Software Installation.

First step is to install avrdude by the following command line in bash.

Next step is to download the firmwware source code. fts_firmware_bdm_v1.zip

Next i connected the programmer to the ISP header on my board. Execute the command make flash in bash. This will erase the target chip, and program its flash memory with the contents of the .hex file you built before.

Run the make fuses command. This will set up all of the fuses except the one that disables the reset pin.

Unplug your board from the USB port and disconnect the programmer, then plug it back in to the USB. Make sure the programmer you used to program your board is also disconnected from the computer.

Type lsusb in the terminal, which will list USB devices.

My device was not recognized in the list. To get the better idea of the error i used dmesg command.



To debug it the following steps were undertaken

1. Connections were checked using multimeter

2. Components was also checked wheather they are soldered correctly.

3. My local instructor has also done various debugging steps.

After debugging the board was not working so i switched to Neil's version of FabISP.

Neil's version of FabISP

I used FabModules to generate the tool path for SRM20. The traces and interior can be downloded from the links given below.

hello.ISP.44.traces

hello.ISP.44.res

hello.ISP.44.interior

Below are the snapshots of the toolpath developed using FabISP.

Traces

Interior

Milling

I have used Roland SRM20 machine to mill the above FabISP.

Step 1:Mount the copper board on the bed of SRM 20 using double sided tape.

Step 2: Set the origin of tool on blade using the navigation keys given on SRM 20 machine.

Step 3: Use paper to set origin on z axis.

Step 4: Send the rml code generated earlier using the same user interface window.

Mounting Components

a)Components Required

2x 100 ohm resistors

1x 499 ohm resistors

1x 10 kohm resistors

1x 0 ohm resistors

2x 3.3v zener diodes

20 MHz crystal

1x ATtiny44

1x 1microF capacitor

1x 2x3 pin header

Problem Faced

In this ISP i faced a problem that the outer copper path was too thin that it could hardly face any mechanical disturbance. This problem occured because i forgot to change the default tool diameter which is 0.79mm in fabmodules. Since i am using 2mm V-bit and tool diameter selected is 0.79mm, so it resulted in this type of cut.

Resolving the problem

Now to resolve the problem i added extra wire on the same path to maintain the continuity.



Programming

Step 1: Download

Firmware for Neil's board

Step 2: As AVR dude is already install is already install in my computer. Go to the firmware folder and open terminal. Also plug the board using programmer (in my case i will be using my Instructors' ISP) to USB.

Use the following commands in terminal.

make clean

make hex

Now go to the make file generate in folder and open it with text editor. Replace this line in the make file

#AVRDUDE = avrdude -c avrisp2 -P usb -p $(DEVICE) # edit this line for your programmer(FabISP in our case)

AVRDUDE = avrdude -c usbtiny -P usb -p $(DEVICE)

Save the file and close

For the next lines the board had to be connected and live. Continue to enter these lines in folder opened in terminal.

make fuse

sudo make program


To check use lsusb with your New Programmer connected to your PC

Final step is desodler SJ1 jumper shorting. Now the board is ready to be used for programming other boards.